/*
 * Partida.cpp
 *
 *  Created on: 11/11/2012
 *      Author: Ignacio Galvez
 */
#include "Partida.h"

Partida::Partida(double timeout, double tiempoActual):pausa(true), 
timeout(timeout), tiempoActual(tiempoActual) {}

void Partida::iniciar() {}

void Partida::pausar() {}

void Partida::show() {}

void Partida::reanudar() {}

bool Partida::estaEnPausa() {
	return pausa;
}

void Partida::agregarHuevos(std::list<Huevo*> huevos) {
	std::list<Huevo*>::iterator it;
	for (it = huevos.begin(); it != huevos.end(); ++it) {
		HuevoBlanco* huevoBlanco;
		huevoBlanco = dynamic_cast<HuevoBlanco*>(*it);
		if (huevoBlanco) huevosBlancos.push_back(*huevoBlanco);
	
		HuevoCodorniz* huevoCodorniz;
		huevoCodorniz = dynamic_cast<HuevoCodorniz*>(*it);
		if (huevoCodorniz) huevosCodorniz.push_back(*huevoCodorniz);
		
		HuevoPoche*	huevoPoche;
		huevoPoche = dynamic_cast<HuevoPoche*>(*it);
		if (huevoPoche)  huevosPoche.push_back(*huevoPoche);
		
		HuevoReloj*	huevoReloj;
		huevoReloj = dynamic_cast<HuevoReloj*>(*it);
		if (huevoReloj) huevosReloj.push_back(*huevoReloj);		
	}
}

void Partida::agregarCajas(std::list<Caja*> cajas) {
std::list<Caja*>::iterator it;
	for (it = cajas.begin(); it != cajas.end(); ++it) {
		CajaMetal* cajaMetal;
		cajaMetal = dynamic_cast<CajaMetal*>(*it);
		if (cajaMetal) cajasMetal.push_back(*cajaMetal);
		CajaMadera* cajaMadera;
		cajaMadera = dynamic_cast<CajaMadera*>(*it);
		if (cajaMadera) cajasMadera.push_back(*cajaMadera);
		CajaDeVidrio* cajaDeVidrio;
		cajaDeVidrio = dynamic_cast<CajaDeVidrio*>(*it);
		if (cajaDeVidrio) cajasDeVidrio.push_back(*cajaDeVidrio);		
	}	
}

void Partida::agregarBonificables(std::list<Bonificable*> bonificables) {
std::list<Bonificable*>::iterator it;
	for (it = bonificables.begin(); it != bonificables.end(); ++it) {
		Banana* banana;
		banana = dynamic_cast<Banana*>(*it);
		if (banana)	bananas.push_back(*banana);
		Cereza* cereza;
		cereza = dynamic_cast<Cereza*>(*it);
		if (cereza)	cerezas.push_back(*cereza);
		Manzana* manzana;
		manzana = dynamic_cast<Manzana*>(*it);
		if (manzana) manzanas.push_back(*manzana);
	}
}

void Partida::agregarPajaros(std::list<Pajaro*> pajaros) {
std::list<Pajaro*>::iterator it;
	for (it = pajaros.begin(); it != pajaros.end(); ++it) {
		PajaroRojo* pajaroRojo;
		pajaroRojo = dynamic_cast<PajaroRojo*>(*it);
		if (pajaroRojo)	pajarosRojos.push_back(*pajaroRojo);
		PajaroAzul* pajaroAzul;
		pajaroAzul = dynamic_cast<PajaroAzul*>(*it);
		if (pajaroAzul) pajarosAzules.push_back(*pajaroAzul);
		PajaroVerde* pajaroVerde;
		pajaroVerde = dynamic_cast<PajaroVerde*>(*it);
		if (pajaroVerde) pajarosVerdes.push_back(*pajaroVerde);
	}
}

void Partida::agregarCerditos(std::list<Cerdito*> cerditos) {
	std::list<Cerdito*>::iterator it;
	for (it = cerditos.begin(); it != cerditos.end(); ++it) {
		this->cerditos.push_back(**it);
	}
}

Partida::~Partida() {}

